The present invention relates generally to communications in a computer network and, in particular, to a scheme for accommodating multiple overlapping networks that share a common communication channel.
In the above-referenced co-pending application, Ser. No. 09/151,452, which is incorporated herein by reference, a computer network adapted for use in the home environment was described. That architecture included a number of network components arranged in a hierarchical fashion and communicatively coupled to one another through communication links operative at different levels of the hierarchy. At the highest level of the hierarchy, a communication protocol that supports dynamic addition of new network components at any level of the hierarchy according to bandwidth requirements within a communication channel operative at the highest level of the network hierarchy is used. Preferably, the communication channel is supported on a wireless communication link.
The generalization of this network structure is shown in FIG. 1. A subnet 10 includes a server 12. In this scheme, the term xe2x80x9csubnetxe2x80x9d is used describe a cluster of network components that includes a server and several clients associated therewith (e.g., coupled through the wireless communication link). Depending on the context of the discussion however, a subnet may also refer to a network that includes a client and one or more subclients associated therewith. A xe2x80x9cclientxe2x80x9d is a network node linked to the server through the wireless communication link. Examples of clients include audio/video equipment such as televisions, stereo components, personal computers, satellite television receivers, cable television distribution nodes, and other household appliances.
Server 12 may be a separate computer that controls the communication link, however, in other cases server 12 may be embodied as an add-on card or other component attached to a host computer (e.g., a personal computer) 13. Server 12 has an associated radio 14, which is used to couple server 12 wirelessly to the other nodes of subnet 10. The wireless link generally supports both high and low bandwidth data channels and a command channel. Here a channel is defined as the combination of a transmission frequency (more properly a transmission frequency band) and a pseudo-random (PN) code used in a spread spectrum communication scheme. In general, a number of available frequencies and PN codes may provide a number of available channels within subnet 10. As is described in the co-pending application cited above, servers and clients are capable of searching through the available channels to find a desirable channel over which to communicate with one another.
Also included in subnet 10 are a number of clients 16, some of which have shadow clients 18 associated therewith. A shadow client 18 is defined as a client which receives the same data input as its associated client 16 (either from server 12 or another client 16), but which exchanges commands with server 12 independently of its associated client 16. Each client 16 has an associated radio 14, which is used to communicate with server 12, and some clients 16 may have associated subclients 20. Subclients 20 may include keyboards, joysticks, remote control devices, multi-dimensional input devices, cursor control devices, display units and/or other input and/or output devices associated with a particular client 16. A client 16 and its associated subclients 20 may communicate with one another via communication links 21, which may be wireless (e.g., infra-red, ultrasonic, spread spectrum, etc.) communication links.
Each subnet 10 is arranged in a hierarchical fashion with various levels of the hierarchy corresponding to levels at which intra-network component communication occurs. At a highest level of the hierarchy exists the server 12 (and/or its associated host 13), which communicates with various clients 16 via the wireless radio channel. At other, lower levels of the hierarchy the clients 16 communicate with their various subclients 20 using, for example, wired communication links or wireless communication links such as infrared links.
Where half-duplex radio communication is used on the wireless link between server 12 and clients 16, a communication protocol based on a slotted link structure with dynamic slot assignment is employed. Such a structure supports point-to-point connections within subnet 10 and slot sizes may be re-negotiated within a session. Thus a data link layer that supports the wireless communication can accommodate data packet handling, time management for packet transmission and slot synchronization, error correction coding (ECC), channel parameter measurement and channel switching. A higher level transport layer provides all necessary connection related services, policing for bandwidth utilization, low bandwidth data handling, data broadcast and, optionally, data encryption. The transport layer also allocates bandwidth to each client 16, continuously polices any under or over utilization of that bandwidth, and also accommodates any bandwidth renegotiations, as may be required whenever a new client 16 comes on-line or when one of the clients 16 (or an associated subclient 20) requires greater bandwidth.
The slotted link structure of the wireless communication protocol for the transmission of real time, multimedia data (e.g., as frames) within a subnet 10 is shown in FIG. 2. At the highest level within a channel, forward (F) and backward or reverse (B) slots of fixed (but negotiable) time duration are provided within each frame transmission period. During forward time slots F, server 12 may transmit video and/or audio data and/or commands to clients 16, which are placed in a listening mode. During reverse time slots B, server 12 listens to transmissions from the clients 16. Such transmissions may include audio, video or other data and/or commands from a client 16 or an associated subclient 20. At the second level of the hierarchy, each transmission slot (forward or reverse) is made up of one or more radio data frames 40 of variable length. Finally, at the lowest level of the hierarchy, each radio data frame 40 is comprised of server/client data packets 42, which may be of variable length.
Each radio data frame 40 is made up of one server/client data packet 42 and its associated error correction coding (ECC) bits. The ECC bits may be used to simplify the detection of the beginning and ending of data packets at the receive side. Variable length framing is preferred over constant length framing in order to allow smaller frame lengths during severe channel conditions and vice-versa. This adds to channel robustness and bandwidth savings. Although variable length frames may be used, however, the ECC block lengths are preferably fixed. Hence, whenever the data packet length is less than the ECC block length, the ECC block may be truncated (e.g., using conventional virtual zero techniques). Similar procedures may be adopted for the last block of ECC bits when the data packet is larger.
As shown in the illustration, each radio data frame 40 includes a preamble 44, which is used to synchronize pseudo-random (PN) generators of the transmitter and the receiver. Link ID 46 is a field of fixed length (e.g., 16 bits long for one embodiment), and is unique to the link, thus identifying a particular subnet 10. Data from the server 12/client 16 is of variable length as indicated by a length field 48. Cyclic redundancy check (CRC) bits 50 may be used for error detection/correction in the conventional fashion.
For the illustrated embodiment then, each frame 52 is divided into a forward slot F, a backward slot B, a quiet slot Q and a number of radio turn around slots T. Slot F is meant for server 12-to-clients 16 communication. Slot B is time shared among a number of mini-slots B1, B2, etc., which are assigned by server 12 to the individual clients 16 for their respective transmissions to the server 12. Each mini-slot B1, B2, etc. includes a time for transmitting audio, video, voice, lossy data (i.e., data that may be encoded/decoded using lossy techniques or that can tolerate the loss of some packets during transmission/ reception), lossless data (i.e., data that is encoded/decoded using lossless techniques or that cannot tolerate the loss of any packets during transmission/reception), low bandwidth data and/or command (Cmd.) packets. Slot Q is left quiet so that a new client may insert a request packet when the new client seeks to log-in to the subnet 10. Slots T appear between any change from transmit to receive and vice-versa, and are meant to accommodate individual radios"" turn around time (i.e., the time when a half-duplex radio 14 switches from transmit to receive operation or vice-versa). The time duration of each of these slots and mini-slots may be dynamically altered through renegotiations between the server 12 and the clients 16 so as to achieve the best possible bandwidth utilization for the channel. Note that where full duplex radios are employed, each directional slot (i.e., F and B) may be full-time in one direction, with no radio turn around slots required.
Forward and backward bandwidth allocation depends on the data handled by the clients 16. If a client 16 is a video consumer, for example a television, then a large forward bandwidth is allocated for that client. Similarly if a client 16 is a video generator, for example a video camcorder, then a large reverse bandwidth is allocated to that particular client. The server 12 maintains a dynamic table (e.g., in memory at server 12 or host 13), which includes forward and backward bandwidth requirements of all on-line clients 16. This information may be used when determining whether a new connection may be granted to a new client. For example, if a new client 16 requires more than the available bandwidth in either direction, server 12 may reject the connection request. The bandwidth requirement (or allocation) information may also be used in deciding how many radio packets a particular client 16 needs to wait before starting to transmit its packets to the server 12. Additionally, whenever the channel conditions change, it is possible to increase/reduce the number of ECC bits to cope with the new channel conditions. Hence, depending on whether the information rate at the source is altered, it may require a dynamic change to the forward and backward bandwidth allocation.
Architectures such as that described above, and in general all direct sequence spread spectrum communication protocols, that are based on a limited number of available channels, suffer from the drawback of interference or non-operation when there are overlapping subnets operating in the same channel. Accordingly, it would be desirable to have a scheme that permits co-location of multiple operating subnets.
In one embodiment, the present scheme allows for allocating bandwidth within a common wireless communication channel used by a number of independent computer networks by assigning a portion of the total bandwidth of the common wireless communication channel to intra-network communications in each of the independent computer networks. This bandwidth allocation scheme may, from time to time, involve revising existing bandwidth allocations for one or more of the independent computer networks, for example when new networks, or new clients in existing networks, request bandwidth within the channel.
In a further embodiment, bandwidth allocation within a wireless communication channel shared by independent computer networks is negotiated by requesting the bandwidth allocation from a master network coordinator and configuring an intra-network communication protocol in accordance with a response therefrom. The intra-network communication protocol may be fashioned as a slotted link structure that includes transmission times for master and client devices of a computer network. These transmission times are preferably arranged within a hierarchy that includes transmission times for master and client devices of other networks that share the wireless communication channel.
In still another embodiment, bandwidth allocation is provided for a system that includes a number of independent computer networks, each sharing one or more common communication channels. At least one of the computer networks includes a master coordinator unit configured to allocate bandwidth utilization for at least one of the common communication channels among two or more of the independent computer networks. In some cases, the common communication channels are wireless communication channels. Sometimes, the master coordinator unit allocates an equal share of the total available bandwidth in the at least one common communication channel to all of the independent computer networks sharing that communication channel.
The common communication channel may support a slotted link communication protocol and the master coordinator unit may thus allocate bandwidth utilization by assigning transmission times within the slotted link communication protocol to those individual computer networks that share it. Each transmission time within the slotted link communication protocol may then include a transmission slot for a master device of a computer network associated with that transmission time and one or more transmission slots for client devices of the computer network associated with that transmission time.
In some cases, one or more of the independent computer networks may communicate with the master coordinator unit through a proxy-coordinator unit located in one of the independent computer networks. The proxy-coordinator unit may be located in a separate one of the independent computer networks from that of the master coordinator unit, in the same computer network as the master coordinator unit or in the same computer network as is utilizing its services.
Generally, for new computer networks, the master coordinator unit allocates bandwidth utilization within the common communication channel by first renegotiating existing bandwidth allocation among those ones of the independent computer networks currently operating in that channel. Then, bandwidth within that channel may be assigned to the new network. Before requesting such allocation, however, a master device within the new computer network should be configured to check for a free communication channel. That same master device may also be configured to request bandwidth allocation within the at least one common communication channel only if that channel is the least utilized of all the common communication channels utilized by the independent computer networks. To accommodate such requests, the master coordinator unit is configured to store the current bandwidth allocation of the at least one common communication channel in a table indexed by unique identifiers for those ones of the independent computer networks utilizing that channel.
These and other features and advantages of the present invention will be apparent from a review of the detailed description and its accompanying drawings that follow.